// 获取全局 app 实例
const app = getApp();

Page({
  data: {
    todayAmt: null,
    totalAmt: null,
    navs: [

    ]
  },
  async onPullDownRefresh() {

    this.getUserFundList();
    console.log('onPullDownRefresh', new Date());
  },


  onItemClick(ev) {
    console.log(this.data.navs[ev.currentTarget.dataset.index].fundCode),
      my.ap.navigateToFinance({
        type: 'fundDetail', //场景码 固定值
        fundCode: this.data.navs[ev.currentTarget.dataset.index].fundCode, // 基金组合代码
      });

    // this.getLogin(this.data.navs[ev.currentTarget.dataset.index].link)
  },
  getLogin(link) {
    let that = this
    if (app.globalData.isLogin && app.globalData.isRegister) {
      // console.log({ status: 1, message: '已登录注册' })
      my.navigateTo({
        url: link
      })
    } else if (app.globalData.isLogin) {
      // console.log({ status: 2, message: '已登录未注册' })
      my.navigateTo({
        url: '../register/register'
      })
    } else {
      // console.log({ status: 3, message: '未登录' })
      my.navigateTo({
        url: '../login/login'
      })
    }
  },

  async onLoad(options) {

    console.log(options.data)

    await this.getUserFundList();
    app.getUserInfo().then(res => {
      this.setData({
        userInfo: res
      });

    });
    // my.showToast({
    //   type: 'none',
    //   content: '提示：下拉可以刷新',
    //   duration: 2500,
    //   success: () => {

    //   },
    // });


  },
  onReady() {
    // 页面加载完成
  },
  onShow() {
    // 页面显示
  },
  onHide() {
    // 页面隐藏
  },
  onUnload() {
    // 页面被关闭
  },
  onTitleClick() {
    // 标题被点击
  },

  onReachBottom() {
    // 页面被拉到底部
  },
  onShareAppMessage() {
    // 返回自定义分享信息
    return {
      title: '养基人',
      desc: '',
      path: 'pages/index/index',
    };
  },
  pageTo(e) {
    // console.log(e.currentTarget.dataset.link)
    my.navigateTo({
      url: e.currentTarget.dataset.link
    })
  },



  async getUserFundList() {
    let ropenides = my.getStorageSync({
      key: 'openid'
    });
    console.log("---1www", ropenides.data);

    const c1 = my.cloud.createCloudContext({
      env: 'env-00jxgeypg2iy', // 云环境 id
    });
    await c1.init();

    var fundCodeInfo = await c1.callFunction({
      name: "addFundInfo",
      data: {
        action: "getAllFundInfosByopenId",
        openId: ropenides.data
      }
    });
    console.log("fundCodeInfo", fundCodeInfo.result.data);

    // this.setData({
    //   navs: fundCodeInfo.result.data,
    //   // todayAmt: res.resultData.data.todayAmt,
    //   // totalAmt: res.resultData.data.totalAmt

    // });

    var jsonArr = JSON.stringify(fundCodeInfo.result.data);
    console.log(jsonArr);
    var context = app.context;
    await context.init()
    const res = context.callContainer({
      path: '/database/calList',
      method: 'POST',
      data: jsonArr,
      header: {
        "X-Alipay-Service": "yongserver", //换成你自己的环境内的服务名
        "Content-Type": "application/json" // 不加这一行，其实就不需要服务端返回的数据限制为json了。啥都不加，其实默认就是 text，如果加了 json，jsapi就可以帮助反序列化json，
      }
    }).then((res) => {
      console.log("getList then respose", res.resultData.data)
      this.setData({
        navs: res.resultData.data.fundInfoList,
        todayAmt: res.resultData.data.todayAmt,
        totalAmt: res.resultData.data.totalAmt

      });

      my.stopPullDownRefresh({
        succees: res => {
          console.log(res)
        },
        fail: error => {
          console.log(error)
        },
      })


    })
  },

  touchS: function (e) {
    console.log("toupch")
    if (e.touches.length == 1) {
      this.setData({
        //设置触摸起始点水平方向位置
        startX: e.touches[0].clientX
      });
    }
  },
  touchM: function (e) {
    if (e.touches.length == 1) {
      //手指移动时水平方向位置
      var moveX = e.touches[0].clientX;
      //手指起始点位置与移动期间的差值
      var disX = this.data.startX - moveX;
      var delBtnWidth = this.data.delBtnWidth;
      var txtStyle = "";
      if (disX == 0 || disX < 0) { //如果移动距离小于等于0，说明向右滑动，文本层位置不变
        txtStyle = "left:0px";
      } else if (disX > 0) { //移动距离大于0，文本层left值等于手指移动距离
        txtStyle = "left:-" + disX + "px";
        if (disX >= delBtnWidth) {
          //控制手指移动距离最大值为删除按钮的宽度
          txtStyle = "left:-" + delBtnWidth + "px";
        }
      }
      //获取手指触摸的是哪一项
      var index = e.currentTarget.dataset.index;
      var list = this.data.list;
      list[index].txtStyle = txtStyle;
      //更新列表的状态
      this.setData({
        list: list
      });
    }
  },
  touchE: function (e) {
    if (e.changedTouches.length == 1) {
      //手指移动结束后水平位置
      var endX = e.changedTouches[0].clientX;
      //触摸开始与结束，手指移动的距离
      var disX = this.data.startX - endX;
      var delBtnWidth = this.data.delBtnWidth;
      //如果距离小于删除按钮的1/2，不显示删除按钮
      var txtStyle = disX > delBtnWidth / 2 ? "left:-" + delBtnWidth + "px" : "left:0px";
      //获取手指触摸的是哪一项
      var index = e.currentTarget.dataset.index;
      var list = this.data.list;
      list[index].txtStyle = txtStyle;
      //更新列表的状态
      this.setData({
        list: list
      });
    }
  },
  //获取元素自适应后的实际宽度
  getEleWidth: function (w) {
    var real = 0;
    try {
      var res = wx.getSystemInfoSync().windowWidth;
      var scale = (750 / 2) / (w / 2); //以宽度750px设计稿做宽度的自适应
      real = Math.floor(res / scale);
      return real;
    } catch (e) {
      return false;
      // Do something when catch error
    }
  },
  initEleWidth: function () {
    var delBtnWidth = this.getEleWidth(this.data.delBtnWidth);
    this.setData({
      delBtnWidth: delBtnWidth
    });
  },
  //点击删除按钮事件
  delItem: function (e) {
    //获取列表中要删除项的下标
    var index = e.currentTarget.dataset.index;
    var list = this.data.list;
    //移除列表中下标为index的项
    list.splice(index, 1);
    //更新列表的状态
    this.setData({
      list: list
    });
  },

});